package com.bean;


import java.util.ArrayList;

import javax.faces.component.UIParameter;
import javax.faces.event.ActionEvent;

import com.hibernate.*;
import com.objet.Produit;
public class VadBean {

	private Contact contact = new Contact();
	private String quantite ="Vide";
	private static ArrayList<Produit> panier = new ArrayList<Produit>();
	private int nbrQ=1;
	private double prixTotal=0;
	private double prixUnitaire=0;
	private static String total="0";
	
	// getters and setter 

	
	
	
	
	public Contact getContact() {
		return contact;
	}


	public String getTotal() {
		
		if(panier.size()>0)
		{
			double somme = 0;
			for(int i =0;i<panier.size();i++)
			{
				somme = panier.get(i).getPrixtotalpanier()+somme;
			}
			total= Double.toString(somme);
		}
		return total;
	}


	public void setTotal(String total) {
		this.total = total;
	}


	public void setContact(Contact contact) {
		this.contact = contact;
	}	

	public String getQuantite() {
		
		try{
			int nbr=0;
			for(int i = 0 ;i<panier.size();i++)
			{
				nbr = panier.get(i).getQuantitepanier()+nbr;
			}
			if(nbr ==0)
				quantite = "vide";
			if(nbr ==1)
			quantite = nbr + " article";
			if(nbr>1) quantite = nbr + " articles";
			
		}
		catch(Exception e)
		{
			quantite = "vide";
		}
		return quantite;
	}

	public void setQuantite(String quantite) {
		this.quantite = quantite;
	}



	public ArrayList<Produit> getPanier() {
		
		
		return panier;
	}


	public void setPanier(ArrayList<Produit> panier) {
		this.panier = panier;
	}


	public String envoyer()
	{

		ContactDAO dao = new ContactDAO();
		dao.getSession().getTransaction().begin();
		dao.save(contact);
		dao.getSession().getTransaction().commit();
		contact= new Contact();
		return "ok";
	}
	public void remplirProduit1(ActionEvent e)
	{
		UIParameter u = (UIParameter)(e.getComponent().findComponent("produit1"));
		String reference =  u.getValue().toString();
		int position = rechercheProduit(reference);
		
		
		if(position!=-1)
		{
			panier.get(position).setQuantitepanier(panier.get(position).getQuantitepanier()+1);
			panier.get(position).setPrixtotalpanier(panier.get(position).getPrixttcpanier()*panier.get(position).getQuantitepanier());
		}
		else
		{
		prixUnitaire=12499;
		prixTotal= prixUnitaire*nbrQ;
		panier.add(new Produit("Ordinateur",reference,"MacBook Air 11'' - Intel Core 2 Duo 1,4 GHz - SSD 128 Go - RAM 2048 Mo",prixUnitaire,nbrQ,prixTotal,"En stock"));
		}
	}
	public void remplirProduit2(ActionEvent e)
	{
		UIParameter u = (UIParameter)(e.getComponent().findComponent("produit2"));
		String reference =  u.getValue().toString();
		int position = rechercheProduit(reference);
		if(position!=-1)
		{
			panier.get(position).setQuantitepanier(panier.get(position).getQuantitepanier()+1);
			panier.get(position).setPrixtotalpanier(panier.get(position).getPrixttcpanier()*panier.get(position).getQuantitepanier());
		}
		else
		{
		prixUnitaire=13099;
		prixTotal= prixUnitaire*nbrQ;
		panier.add(new Produit("Ordinateur",reference,"iMac 22'' - core i5 quadricoeur 2.5GHz - 4 Go - 500 Go - HD",prixUnitaire,nbrQ,prixTotal,"En stock"));
		}
	}
	public void remplirProduit3(ActionEvent e)
	{
		UIParameter u = (UIParameter)(e.getComponent().findComponent("produit3"));
		String reference =  u.getValue().toString();
		int position = rechercheProduit(reference);
		if(position!=-1)
		{
			panier.get(position).setQuantitepanier(panier.get(position).getQuantitepanier()+1);
			panier.get(position).setPrixtotalpanier(panier.get(position).getPrixttcpanier()*panier.get(position).getQuantitepanier());
		}
		else
		{
		prixUnitaire=16499;
		prixTotal= prixUnitaire*nbrQ;
		panier.add(new Produit("Ordinateur",reference,"iMac 22'' - core i5 quadricoeur 2.7GHz - 4 Go - 1 To - HD ",prixUnitaire,nbrQ,prixTotal,"En stock"));
		}
	}
	public void remplirProduit4(ActionEvent e)
	{
		UIParameter u = (UIParameter)(e.getComponent().findComponent("produit4"));
		String reference =  u.getValue().toString();
		int position = rechercheProduit(reference);
		if(position!=-1)
		{
			panier.get(position).setQuantitepanier(panier.get(position).getQuantitepanier()+1);
			panier.get(position).setPrixtotalpanier(panier.get(position).getPrixttcpanier()*panier.get(position).getQuantitepanier());
		}
		else
		{
		prixUnitaire=17699;
		prixTotal= prixUnitaire*nbrQ;
		panier.add(new Produit("Ordinateur",reference,"MacBook Air 13'' - Intel Core 2 Duo 1,86 GHz - SSD 256 Mo - RAM 2048 Mo",prixUnitaire,nbrQ,prixTotal,"En stock"));
		}
	}
	public void remplirProduit5(ActionEvent e)
	{
		UIParameter u = (UIParameter)(e.getComponent().findComponent("produit5"));
		String reference =  u.getValue().toString();
		int position = rechercheProduit(reference);
		if(position!=-1)
		{
			panier.get(position).setQuantitepanier(panier.get(position).getQuantitepanier()+1);
			panier.get(position).setPrixtotalpanier(panier.get(position).getPrixttcpanier()*panier.get(position).getQuantitepanier());
		}
		else
		{
		prixUnitaire=19299;
		prixTotal= prixUnitaire*nbrQ;
		panier.add(new Produit("Ordinateur",reference,"IMAC 27'' - Core i3 3.20 - 2X2Go - 1To - Radeon HD 5670",prixUnitaire,nbrQ,prixTotal,"En stock"));
		}
	}
	// retirer un produit du panier

	public void deleteProduit(ActionEvent e)
	{
		UIParameter u = (UIParameter)(e.getComponent().findComponent("deleteId"));
		String id = u.getValue().toString();
		try {

   
			for(int i =0 ;i<panier.size();i++)
		    {
		    	
		    	if(panier.get(i).getReferencepanier().equals(id))
		    	{
		    		
		    		panier.remove(i);
		    	}
		    }
		}
		finally
		{
		}		
	}
	 
	public int rechercheProduit(String ref)
	{
		int position= -1;
	    for(int i =0 ;i<panier.size();i++)
	    {
	    	
	    	if(panier.get(i).getReferencepanier().equals(ref))
	    	{
	    		
	    		position= i;
	    	}
	    }
		
		return position;
	}
	
	public void actualiser(ActionEvent e)
	{
		
	
		UIParameter u = (UIParameter)(e.getComponent().findComponent("actualiser"));
		String id = u.getValue().toString();
		int i= rechercheProduit(id);
		panier.get(i).setPrixtotalpanier(panier.get(i).getPrixttcpanier()*panier.get(i).getQuantitepanier());
	}

}
